Next: Window Point, Previous: Dedicated Windows, Up: Windows [Contents][Index]
When you want to get rid of a window used for displaying a
buffer, you can call delete-window or
delete-windows-on (see Deleting Windows) to
remove that window from its frame. If the buffer is shown on a
separate frame, you might want to call delete-frame
(see Deleting
Frames) instead. If, on the other hand, a window has been
reused for displaying the buffer, you might prefer showing the
buffer previously shown in that window, by calling the function
switch-to-prev-buffer (see Window History).
Finally, you might want to either bury (see Buffer List) or kill (see
Killing
Buffers) the window’s buffer.
The following command uses information on how the window for displaying the buffer was obtained in the first place, thus attempting to automate the above decisions for you.
This command quits window and buries its
buffer. The argument window must be a live window
and defaults to the selected one. With prefix argument
kill non-nil, it kills the buffer
instead of burying it. It calls the function
quit-restore-window described next to deal with
the window and its buffer.
This function tries to restore the state of window that existed before its buffer was displayed in it. The optional argument window must be a live window and defaults to the selected one.
If window was created specially for displaying
its buffer, this function deletes window provided
its frame contains at least one other live window. If
window is the only window on its frame and there
are other frames on the frame’s terminal, the value of
the optional argument bury-or-kill determines how
to proceed with the window. If bury-or-kill equals
kill, the frame is deleted unconditionally.
Otherwise, the fate of the frame is determined by calling
frame-auto-hide-function (see below) with that
frame as sole argument.
Otherwise, this function tries to redisplay the buffer previously shown in window. It also tries to restore the window start (see Window Start and End) and point (see Window Point) positions of the previously shown buffer. If, in addition, window’s buffer was temporarily resized, this function will also try to restore the original height of window.
The cases described so far require that the buffer shown
in window is still the buffer displayed by the
last buffer display function for this window. If another
buffer has been shown in the meantime, or the buffer
previously shown no longer exists, this function calls
switch-to-prev-buffer (see Window History) to
show some other buffer instead.
The optional argument bury-or-kill specifies how to deal with window’s buffer. The following values are handled:
nilThis means to not deal with the buffer in any
particular way. As a consequence, if window is
not deleted, invoking switch-to-prev-buffer
will usually show the buffer again.
appendThis means that if window is not deleted,
its buffer is moved to the end of
window’s list of previous buffers, so
it’s less likely that a future invocation of
switch-to-prev-buffer will switch to it.
Also, it moves the buffer to the end of the frame’s
buffer list.
buryThis means that if window is not deleted,
its buffer is removed from window’s list
of previous buffers. Also, it moves the buffer to the end
of the frame’s buffer list. This value provides the
most reliable remedy to not have
switch-to-prev-buffer switch to this buffer
again without killing the buffer.
killThis means to kill window’s buffer.
quit-restore-window bases its decisions on
information stored in window’s
quit-restore window parameter (see Window
Parameters), and resets that parameter to
nil after it’s done.
The following option specifies how to deal with a frame containing just one window that should be either quit, or whose buffer should be buried.
The function specified by this option is called to automatically hide frames. This function is called with one argument—a frame.
The function specified here is called by
bury-buffer (see Buffer List) when the
selected window is dedicated and shows the buffer to bury. It
is also called by quit-restore-window (see
above) when the frame of the window to quit has been
specially created for displaying that window’s buffer
and the buffer is not killed.
The default is to call iconify-frame (see
Visibility
of Frames). Alternatively, you may specify either
delete-frame (see Deleting Frames)
to remove the frame from its display, ignore to
leave the frame unchanged, or any other function that can
take a frame as its sole argument.
Note that the function specified by this option is called only if the specified frame contains just one live window and there is at least one other frame on the same terminal.
Next: Window Point, Previous: Dedicated Windows, Up: Windows [Contents][Index]